package org.jsola.hr.service;

import org.jsola.core.service.IService;
import org.jsola.hr.dao.IEmpSocInfoDAO;
import org.jsola.hr.dto.SyncSocUniversalDTO;
import org.jsola.hr.dto.SyncSocWebSiteDTO;
import org.jsola.hr.entity.EmpSocInfoDO;
import org.jsola.user.core.TokenUser;

import java.util.List;

/**
 * @author lyh
 */
public interface ISyncSocWebSiteService extends IService<IEmpSocInfoDAO, EmpSocInfoDO> {


    /**
     * 社保增员
     *
     * @param syncSocWebSiteDTO 增员参数
     * @param tokenUser         当前用户
     * @return 增员结果
     */
    <T> List<T> incrementSocEmp(SyncSocWebSiteDTO syncSocWebSiteDTO, TokenUser tokenUser);

    /**
     * 社保减员
     *
     * @param syncSocWebSiteDTO 减员参数
     * @param tokenUser         当前用户
     * @return 增员结果
     */
    <T> List<T> decreaseSocEmp(SyncSocWebSiteDTO syncSocWebSiteDTO, TokenUser tokenUser);

    /**
     * 同步社保网站数据
     *
     * @param syncSocWebSiteDTO 同步参数
     * @param tokenUser         当前用户
     * @return 同步条数
     */
    List<SyncSocUniversalDTO> batchSync(SyncSocWebSiteDTO syncSocWebSiteDTO, TokenUser tokenUser);

}
